Computing system technology has advanced at a remarkable pace recently, with each subsequent generation of computing system increasing in performance, functionality, and storage capacity, often at reduced cost. However, individual computing systems are still generally expensive and incapable of providing the raw computing power that is often required by modern requirements for computing power. One particular type of computing system architecture that generally fills this requirement is that of a parallel processing computing system. Each parallel processing computing system is often referred to as a “supercomputer.”
Generally, a parallel processing computing system comprises a plurality of computing nodes and is configured with a distributed application. Some parallel processing computing systems, which may also be referred to as massively parallel processing computing systems, may have hundreds or thousands of individual computing nodes, and provide supercomputer class performance. Each computing node is typically of modest computing power and generally includes one or more processing units, or computing cores. As such, each computing node may be a computing system configured with an operating system and distributed application. The distributed application provides work for each computing node and is operable to control the workload of the parallel processing computing system. Generally speaking, the distributed application provides the parallel processing computing system with a workload that can be divided into a plurality of tasks. Typically, each computing node, or each computing core, is configured to process one task and therefore process, or perform, a specific function. Thus, the parallel processing architecture enables the parallel processing computing system to receive a workload, then configure the computing nodes to cooperatively perform one or more tasks such that the workload supplied by the distributed application is processed.
Parallel processing computing systems have found application in numerous different computing scenarios, particularly those requiring high performance and fault tolerance. For instance, airlines rely on parallel processing to process customer information, forecast demand, and decide what fares to charge. The medical community uses parallel processing computing systems to analyze magnetic resonance images and to study models of bone implant systems. As such, parallel processing computing systems typically perform most efficiently on work that contains several computations that can be performed at once, as opposed to work that must be performed serially. The overall performance of the parallel processing computing system is increased because multiple computing cores can handle a larger number of tasks in parallel than could a single computing system. Other advantages of some parallel processing systems include their scalable nature, their modular nature, and their improved level of redundancy.
When processing a workload, computing nodes of a parallel processing computing system typically operate at their highest possible performance to process each task of the workload as fast as possible. These computing nodes typically consume a large amount of power as well as generate a large amount of heat. As such, large and complex air handling systems must be designed and installed to keep the room, or rooms, where a parallel processing computing system is installed at a set temperature. Conventional methods of reducing the consumed power and/or the generated heat have generally included limiting the power to the computing nodes such that they are forced to run at lower speeds or taking various nodes of the parallel processing computing system offline at various times to reduce the heat generated by the parallel processing computing system as a whole. However, both methods prevent parallel processing computing systems from operating at peak efficiency. Additionally, both methods typically increase the time required to process a workload, which is often an unacceptable solution in a modern business environment.
Consequently, there is a need to schedule parts of a workload of a parallel processing computing system in such a manner that reduces the amount of power consumed by computing nodes without reducing the overall processing capabilities of the parallel processing computing system.